
# -*- encoding: utf-8 -*-

import re
from apina import Apina
import artlista as l
import parser.parser as parser
from tekstiapu import *



# Sisäänkirjautuminen
def login():
    # eri tiedostoon, ettei uploadata tunnuksia vahingossa
    import eiupata
    return eiupata.login()

# Listan luominen.
def init(wl):
    lst = None
    lst = l.Uppilista2(u"scripts/päätteet.tOn-gen.txt", u"fi-taivutus")
    lst.set_log_prefix(u"logit/fi-lisää-ety")

    return lst



knimi = u"Suomi"
slnimi = u"Adjektiivi"

# Artikkelin editoiminen.
#  art  (uppilista.Sivu)   artikkeli
def edit(art, oma):
    global knimi, slnimi

    if art.is_new():
        return art.lykkaa(u"Sivua ei ole")

    w = parser.WiktSivu(art.wtxt)
    if not w:
        return art.lykkaa(u"Ei parsittava")

    kieli = w.kieliosio(u"" + knimi + u"")
    if not kieli:
        return art.lykkaa(u"Ei u" + knimi + u"-osiota")
    sanaluokat = kieli.sanaluokat(u"" + slnimi + u"")
    if len(sanaluokat) == 0:
        return art.lykkaa(u"Ei u" + slnimi + u"-osiota")
    elif len(sanaluokat) > 1:
        return art.lykkaa(u"Monta u" + slnimi + u"-osiota")
    # ainoa u" + slnimi + u"-osio
    sanalk = sanaluokat[0]

    liittyvat = sanalk.slaliosio(u"Etymologia")
    if liittyvat:
        return art.lykkaa(u"Sisältää jo etymologian")

    art.set_summary_prefix(u"/*" + knimi + u"*/: " + slnimi + ": ")

    paate = u"tOn"
    p_re = paate
    p_re = re.sub(u"A", u"[aä]", p_re)
    p_re = re.sub(u"O", u"[oö]", p_re)
    p_re = re.sub(u"U", u"[uy]", p_re)
    print  u"pre: " + p_re
    m = re.match(".*(" + p_re + ")$", art.title())
    if m:
        vart = art.title()[:m.start(1)]
        o_paate = m.group(1) # todellinen pääte
        if vart == oma:
            tekstiosa = u"{{ety|fi|" + oma + u"|" + o_paate + "}}"
        else:
            tekstiosa = u"{{ety|fi|" + oma + u"|" + vart + u"|" + o_paate + "}}"
#    if art.title().endswith(u"us"):
#        tekstiosa = u"{{ety|fi|johdos|" + oma + u"|us}}"
#    elif art.title().endswith(u"ys"):
#        tekstiosa = u"{{ety|fi|johdos|" + oma + u"|ys}}"
    else:
        raise Exception(u"outo pääte")

    liittyvat = sanalk.lisaa_oikeaan_paikkaan(parser.Osio(u"Etymologia"))
    liittyvat.set_tekstiosa(tekstiosa)

    art.add_info(u"+etymologia: johdos")

    if art.on_muuttunut():
        return w.teksti()
    return None

